﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BussinessLayer;
using DataAccessLayer.Adapter;
using DataAccessLayer.Entity;
namespace QLTSLienThong.Form_he_thong
{
    public partial class ucCapNhatTinhThanh : UserControl
    {
        public ucCapNhatTinhThanh()
        {
            InitializeComponent();
        }
        bool kiemTraTonTaiMaHuyen = true;//, kiemTraTonTaiTenHuyen = true;
        TinhThanhBussiness tinhThanhBussiness = new TinhThanhBussiness();
        TinhThanhAdapter tt = new TinhThanhAdapter();
        clsTinh_ThanhPho clTinhThanh;
        DataTable dt;
        QuanHuyenBussiness quanHuyenBus = new QuanHuyenBussiness();
        clsQuan_Huyen clsQuanHuyen;
        XaPhuongBussiness xaPhuongBussniess = new XaPhuongBussiness();
        clsXa_Phuong clsXaPhuong;
        KVUTBussiness kvutBussiness = new KVUTBussiness();
        bool kiemTraTonTaiMaTinh = true;
        private void LoadTinThanh()
        {
            dt = tinhThanhBussiness.LoadTinhThanh();
            dtgTinhThanh.DataSource = dt;
            binDing();
            KhoaText();
        }
        private void ucCapNhatTinhThanh_Load(object sender, EventArgs e)
        {
            LoadTinThanh();
            LoadHuyenQuan();
        }
        private void binDing()
        {
            txtMaTinh.DataBindings.Clear();
            txtMaTinh.DataBindings.Add("Text", dtgTinhThanh.DataSource, "MaTinh");
            txtTenTinh.DataBindings.Clear();
            txtTenTinh.DataBindings.Add("Text", dtgTinhThanh.DataSource, "TenTinh");
            //cboTenTinh.DataBindings.Clear();
            //cboTenTinh.DataBindings.Add("Text", dtgTinhThanh.DataSource, "TenTinh");
        }
        private void KhoaText()
        {
            txtMaTinh.ReadOnly = true;
            txtTenTinh.ReadOnly = true;
            buttonX1.SendToBack();
            buttonX2.SendToBack();
            btnXoaTinh.Enabled = true;
        }
        private void XoaText()
        {
            txtMaTinh.Clear();
            txtTenTinh.Clear();
        }
        private void MoText()
        {
            txtMaTinh.ReadOnly = false;
            txtTenTinh.ReadOnly = false;
            txtMaTinh.Focus();
            btnThemTinh.SendToBack();
            btnSuaTinh.SendToBack();
        }
        private void buttonX1_Click(object sender, EventArgs e)
        {
            if (ktDL())
            {
                if (_KTThem)
                {
                    clTinhThanh = new clsTinh_ThanhPho();
                    clTinhThanh.MaTinh = txtMaTinh.Text.Trim();
                    clTinhThanh.TenTinh = txtTenTinh.Text.Trim();
                    clTinhThanh.Active = true;
                    tinhThanhBussiness.ThemTinh(clTinhThanh);
                    MessageBox.Show("Thêm thành công!", "Thông báo!");
                    LoadTinThanh();
                }
                else
                {
                    clTinhThanh = new clsTinh_ThanhPho();
                    clTinhThanh.MaTinh = txtMaTinh.Text.Trim();
                    clTinhThanh.TenTinh = txtTenTinh.Text.Trim();
                    tinhThanhBussiness.SuaTinhThanh(clTinhThanh);
                    MessageBox.Show("Sửa thành công!", "Thông báo!");
                    LoadTinThanh();
                }
            }
        }

        private void buttonX2_Click(object sender, EventArgs e)
        {
            //hủy
            KhoaText();
            LoadTinThanh();
        }
        bool _KTThem;
        private void btnThemTinh_Click(object sender, EventArgs e)
        {
            _KTThem = true;
            MoText();
            XoaText();
        }
        object kq;
        private void btnSuaTinh_Click(object sender, EventArgs e)
        {
            _KTThem = false;
            MoText();
        }
        private bool ktDL()
        {
            //string eror = "";
            if (txtMaTinh.Text.Trim() == "")
            {
                MessageBox.Show("Bạn không được để trống mã Tỉnh", "Thông báo!");
                txtMaTinh.Focus();
                return false;
            }
            if (_KTThem == false)
            {
                if (txtMaTinh.Text.Trim() == dtgTinhThanh.CurrentRow.Cells["MaTinh"].Value.ToString())
                {
                    kiemTraTonTaiMaTinh = false;
                }
                if (txtTenTinh.Text.Trim() == dtgTinhThanh.CurrentRow.Cells["TenTinh"].Value.ToString())
                {
                    kiemTraTonTaiMaTinh = false;
                }
            }
            if (kiemTraTonTaiMaTinh == true)
            {
                clTinhThanh = new clsTinh_ThanhPho();
                clTinhThanh.MaTinh = txtMaTinh.Text.Trim();
                kq = tinhThanhBussiness.KiemTraMa(clTinhThanh);
                if (Convert.ToInt32(kq) > 0)
                {
                    MessageBox.Show("Mã này đã tồn tài!", "Thông báo!");
                    txtMaTinh.Focus();
                    return false;
                }
            }
            if (kiemTraTonTaiMaTinh == true)
            {
                clTinhThanh = new clsTinh_ThanhPho();
                clTinhThanh.TenTinh = txtTenTinh.Text.Trim();
                kq = tinhThanhBussiness.KiemTraTenTinh(clTinhThanh);
                if (Convert.ToInt32(kq) > 0)
                {
                    MessageBox.Show("Tên tỉnh này đã tồn tài!", "Thông báo!");
                    txtTenTinh.Focus();
                    return false;
                }
            }
            if (txtTenTinh.Text.Trim() == "")
            {
                MessageBox.Show("Bạn không được để trống tên Tỉnh", "Thông báo!");
                txtTenTinh.Focus();
                return false;
            }
            return true;
        }

        private void btnXoaTinh_Click(object sender, EventArgs e)
        {
            XoaTinh();
        }
        private void XoaTinh()
        {
            clTinhThanh = new clsTinh_ThanhPho();
            clTinhThanh.MaTinh = txtMaTinh.Text;
            if (MessageBox.Show("Bạn có muốn xóa mã tỉnh: " + txtMaTinh.Text + "?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                tinhThanhBussiness.XoaTinhThanh(clTinhThanh);
                LoadTinThanh();
            }
        }

        private void btnLuuHuyen_Click(object sender, EventArgs e)
        {
            if (ktDLQuanHuyen())
            {
                if (ktThemQuanHuyen)
                {
                    clsQuanHuyen = new clsQuan_Huyen();
                    clsQuanHuyen.MaHuyen = txtMaHuyen.Text.Trim();
                    clsQuanHuyen.TenHuyen = txtTenHuyen.Text.Trim();
                    clsQuanHuyen.MaTinhThanh = _MaTinh;
                    clsQuanHuyen.Active = true;
                    quanHuyenBus.ThemQuanHuyen(clsQuanHuyen);
                    MessageBox.Show("Thêm thành công!", "Thông báo!");
                    LoadTenQuan();
                    LoadHuyenQuan();
                }
                else
                {
                    clsQuanHuyen = new clsQuan_Huyen();
                    clsQuanHuyen.MaHuyen = txtMaHuyen.Text.Trim();
                    clsQuanHuyen.TenHuyen = txtTenHuyen.Text.Trim();
                    clsQuanHuyen.MaTinhThanh = _MaTinh;
                    //clsQuanHuyen.Active = true;
                    quanHuyenBus.SuaQuanHuyen(clsQuanHuyen);
                    MessageBox.Show("Sửa thành công!", "Thông báo!");
                    LoadTenQuan();
                    LoadHuyenQuan();
                }
            }
        }
        private void LoadTenQuan()
        {
            clsQuanHuyen = new clsQuan_Huyen();
            clsQuanHuyen.MaTinhThanh = _MaTinh;
            dtgQuanHuyen.DataSource = quanHuyenBus.LoadTenQuan(clsQuanHuyen);
        }
        private bool ktDLQuanHuyen()
        {
            if (txtMaHuyen.Text.Trim() == "")
            {
                MessageBox.Show("Bạn chưa nhập mã huyện!","Thông báo!");
                txtMaHuyen.Focus();
                return false;
            }
            if (ktThemQuanHuyen == false)
            {
                if (txtMaHuyen.Text.Trim() == dtgQuanHuyen.CurrentRow.Cells["MaQuanHuyen"].Value.ToString())
                {
                    kiemTraTonTaiMaHuyen = false;
                }
                //if (txtTenHuyen.Text.Trim() == dtgQuanHuyen.CurrentRow.Cells["TenQuanHuyen"].Value.ToString())
                //{
                //    //kiemTraTonTaiTenHuyen = false;
                //}
            }
            if (kiemTraTonTaiMaHuyen == true)
            {
                clsQuanHuyen = new clsQuan_Huyen();
                clsQuanHuyen.MaHuyen = txtMaHuyen.Text.Trim();
                clsQuanHuyen.MaTinhThanh = _MaTinh;
                kq = quanHuyenBus.KiemTraMaHuyen(clsQuanHuyen);
                if (Convert.ToInt32(kq) > 0)
                {
                    MessageBox.Show("Mã huyện này đã tồn tài!", "Thông báo!");
                    txtMaHuyen.Focus();
                    return false;
                }
            }
            if (txtTenHuyen.Text.Trim() == "")
            {
                MessageBox.Show("Bạn chưa nhập tên huyện!", "Thông báo!");
                txtTenHuyen.Focus();
                return false;
            }
            return true;
        }

        private void btnHuyHuyen_Click(object sender, EventArgs e)
        {
            //KhoaControlHuyen();
            LoadHuyenQuan();
        }
        private void LoadHuyenQuan()
        {
            //dt = new DataTable();
            //dt = quanHuyenBus.LoadQuanHuyen();
            //dtgQuanHuyen.DataSource = dt;
            //LoadTinhThanhComboBox();
            LoadDLLenForm();
            KhoaControlHuyen();
        }
      
        private void XoaQuanHuyen()
        {
            clsQuanHuyen = new clsQuan_Huyen();
            clsQuanHuyen.MaHuyen = txtMaHuyen.Text.Trim();
            if (MessageBox.Show("Bạn muốn xóa mã huyện: " + txtMaHuyen.Text.Trim() + "?", "Thông báo!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                quanHuyenBus.XoaQuanHuyen(clsQuanHuyen);
                LoadTenQuan();
                LoadHuyenQuan();
            }
        }

        private void btnXoaHuyen_Click(object sender, EventArgs e)
        {
            XoaQuanHuyen();
        }

        private void btnThemHuyen_Click(object sender, EventArgs e)
        {
            ktThemQuanHuyen = true;
            MoControlHuyen();
            XoatextHuyen();
        }
        bool ktThemQuanHuyen;
        private void btnSuaHuyen_Click(object sender, EventArgs e)
        {
            ktThemQuanHuyen = false;
            MoControlHuyen();
        }
        private void KhoaControlHuyen()
        {
            txtMaHuyen.ReadOnly = true;
            txtTenHuyen.ReadOnly = true;
            //cboTenTinh.Enabled = false;
            btnThemHuyen.BringToFront();
            btnSuaHuyen.BringToFront();
        }
        private void MoControlHuyen()
        {
            txtMaHuyen.ReadOnly = false;
            txtTenHuyen.ReadOnly = false;
           // cboTenTinh.Enabled = true;
            txtMaHuyen.Focus();
            btnSuaHuyen.SendToBack();
            btnThemHuyen.SendToBack();
        }
        private void XoatextHuyen()
        {
            txtMaHuyen.Clear();
            txtTenHuyen.Clear();
            //cboTenTinh.SelectedIndex = -1;
        }
        private void LoadDLLenForm()
        {
            txtMaHuyen.DataBindings.Clear();
            txtMaHuyen.DataBindings.Add("Text", dtgQuanHuyen.DataSource, "MaQuanHuyen");
            txtTenHuyen.DataBindings.Clear();
            txtTenHuyen.DataBindings.Add("Text", dtgQuanHuyen.DataSource, "TenQuanHuyen");
            //cboTenTinh.DataBindings.Clear();
            //cboTenTinh.DataBindings.Add("Text", dtgQuanHuyen.DataSource, "TenTinh");
        }
        string _MaTinh = "",_MaHuyen="";
        private void dtgTinhThanh_SelectionChanged(object sender, EventArgs e)
        {
            try
            {
                _MaTinh = dtgTinhThanh.Rows[dtgTinhThanh.CurrentRow.Index].Cells[0].Value.ToString();
                clsQuanHuyen = new clsQuan_Huyen();
                clsQuanHuyen.MaTinhThanh = _MaTinh;
                dtgQuanHuyen.DataSource = quanHuyenBus.LoaTenQuanHuyen(clsQuanHuyen);
                LoadTenQuan();
                LoadDLLenForm();
            }
            catch
            {
                return;
            }
        }

        private void btnLuuXaPhuong_Click(object sender, EventArgs e)
        {
            //lưu
            if (KTDLXaPhuong())
            {
                if (_KTThemXaPhuong)
                {
                    clsXaPhuong = new clsXa_Phuong();
                    clsXaPhuong.MaXaPhuong = txtMaXaPhuong.Text;
                    clsXaPhuong.TenXaPhuong = txtTenXaPhuong.Text;
                    clsXaPhuong.MaHuyenThi = _MaHuyen;
                    clsXaPhuong.MaKVUT = cboTenKVUT.SelectedValue.ToString();//lấy mã ra để lưu
                    clsXaPhuong.Active = true;
                    xaPhuongBussniess.ThemXaPhuong(clsXaPhuong);
                    MessageBox.Show("Thêm thành công!","Thông báo!");
                    dtgXaPhuong.DataSource = xaPhuongBussniess.LoadXaPhuongByMaQuanHuyen(clsXaPhuong);
                    loadXaLenForm();
                }
                else
                {
                    clsXaPhuong = new clsXa_Phuong();
                    clsXaPhuong.MaXaPhuong = txtMaXaPhuong.Text;
                    clsXaPhuong.MaHuyenThi = _MaHuyen;
                    clsXaPhuong.TenXaPhuong = txtTenXaPhuong.Text;
                    clsXaPhuong.MaKVUT = cboTenKVUT.SelectedValue.ToString();
                    xaPhuongBussniess.SuaXaPhuong(clsXaPhuong);
                    MessageBox.Show("Sửa thành công!","Thông báo!");
                    dtgXaPhuong.DataSource = xaPhuongBussniess.LoadXaPhuongByMaQuanHuyen(clsXaPhuong);
                    loadXaLenForm();
                }
            }
        }

        private void btnHuyXaPhuong_Click(object sender, EventArgs e)
        {
            //hủy
            KhoaTextXaPhuong();
            loadXaLenForm();
        }
        clsXa_Phuong clsXoa = new clsXa_Phuong();
        private void dtgQuanHuyen_SelectionChanged(object sender, EventArgs e)
        {
            try
            {
                _MaHuyen = dtgQuanHuyen.Rows[dtgQuanHuyen.CurrentRow.Index].Cells[0].Value.ToString();
                //MessageBox.Show(_MaHuyen.ToString());
                // clsXaPhuong = new clsXa_Phuong();
                clsXoa.MaHuyenThi = _MaHuyen;
                dtgXaPhuong.DataSource = xaPhuongBussniess.LoadXaPhuongByMaQuanHuyen(clsXoa);
                //loadXaLenForm();
                LoadComBoBoxKVUT();
                LoadXaTextBox();
            }
            catch
            {
                return;
            }
            //LoadComBoBoxKVUT
        }
        private void loadXaLenForm()
        {
           // dtgXaPhuong.DataSource = xaPhuongBussniess.LoadXaPhuong();

            LoadComBoBoxKVUT();
            LoadXaTextBox();
            KhoaTextXaPhuong();
        }
        private void LoadXaTextBox()
        {
            txtMaXaPhuong.DataBindings.Clear();
            txtMaXaPhuong.DataBindings.Add("Text",dtgXaPhuong.DataSource,"MaXaPhuong");
            txtTenXaPhuong.DataBindings.Clear();
            txtTenXaPhuong.DataBindings.Add("Text", dtgXaPhuong.DataSource, "TenXaPhuong");
            cboTenKVUT.DataBindings.Clear();
            cboTenKVUT.DataBindings.Add("Text",dtgXaPhuong.DataSource,"TenKVUT");
        }
        private void KhoaTextXaPhuong()
        {
            txtMaXaPhuong.ReadOnly = true;
            txtTenXaPhuong.ReadOnly = true;
            cboTenKVUT.Enabled = false;
            btnLuuXaPhuong.SendToBack();
            btnHuyXaPhuong.SendToBack();
        }
        private void MoTextXaPhuong()
        {
            txtTenXaPhuong.ReadOnly = false;
            txtMaXaPhuong.ReadOnly = false;
            txtMaXaPhuong.Focus();
            cboTenKVUT.Enabled = true;
            btnHuyXaPhuong.BringToFront();
            btnLuuXaPhuong.BringToFront();
        }
        private void XoaTextXaPhuong()
        {
            txtMaXaPhuong.Clear();
            txtTenXaPhuong.Clear();
            cboTenKVUT.SelectedIndex = -1;
        }
        bool _KTThemXaPhuong;
        private void btnThemXaPhuong_Click(object sender, EventArgs e)
        {
            _KTThemXaPhuong = true;
            MoTextXaPhuong();
            XoaTextXaPhuong();
        }

        private void btnSuaXaPhuong_Click(object sender, EventArgs e)
        {
            _KTThemXaPhuong = false;
            MoTextXaPhuong();
        }
        private void LoadComBoBoxKVUT()
        {
            dt = new DataTable();
            dt = kvutBussiness.LoadKVUT();
            cboTenKVUT.DataSource = dt;
            cboTenKVUT.DisplayMember = "TenKVUT";
            cboTenKVUT.ValueMember = "MaKVUT";
            cboTenKVUT.SelectedIndex = 0;
        }
        private bool KTDLXaPhuong()
        {
            if (txtMaXaPhuong.Text.Trim() == "")
            {
                MessageBox.Show("Bạn k được để trống mã Xã!","Thông báo!");
                txtMaXaPhuong.Focus();
                return false;
            }
            if (txtTenXaPhuong.Text.Trim() == "")
            {
                MessageBox.Show("Bạn k được để trống tên Xã!", "Thông báo!");
                txtTenXaPhuong.Focus();
                return false;
            }
            if (cboTenKVUT.SelectedIndex == -1)
            {
                MessageBox.Show("Bạn k được để trống tên KVUT!", "Thông báo!");
                cboTenKVUT.Focus();
                return false;
            }
            return true;
        }

        private void btnXoaXaPhuong_Click(object sender, EventArgs e)
        {
            XoaXaPhuong();
        }
        private void XoaXaPhuong()
        {
            clsXaPhuong = new clsXa_Phuong();
            clsXaPhuong.MaXaPhuong = txtMaXaPhuong.Text;
            if (MessageBox.Show("Bạn muốn xóa mã: " + txtMaXaPhuong.Text + "?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                xaPhuongBussniess.XoaXaPhuong(clsXaPhuong);
                dtgXaPhuong.DataSource = xaPhuongBussniess.LoadXaPhuongByMaQuanHuyen(clsXoa);
                loadXaLenForm();
            }
        }
    }
}
